package com.hsxxherp.ation.business.user.center.util;

import com.hsxxherp.ation.common.utils.Sha256Util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.security.NoSuchAlgorithmException;

/**
 * 使用SHA256加密用户密码
 *
 * @author Antonio 《2486970363@qq.com》
 * @since 2024年6月24日
 */
public class Sha256PasswordEncoder {


    private static final Logger log = LoggerFactory.getLogger(Sha256PasswordEncoder.class);

    /**
     * 生成用户密码
     * 如果加密过程失败则返回null
     *
     * @param password 待加密密码
     * @return
     */
    public String encode(String password) {
        try {
            return Sha256Util.sha256(password);
        } catch (NoSuchAlgorithmException e) {
            log.error("用户密码加密失败！", e);
            return null;
        }

    }


    /**
     * 验证密码是否相符
     *
     * @param password  用户明码
     * @param encodeStr 加密后的字符串
     * @return boolean
     */
    public boolean matches(String password, String encodeStr) {
        return encode(password).equals(encodeStr);

    }
}
